home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
ICE95.ZIP
/
README.CHI
< prev
next >
Wrap
Text File
|
1995-10-10
|
8KB
|
234 lines
----------------------------------------------------------------------------
TABLE OF CONTENTS FOR CHICAGO SPECIFIC CHANGES
Soft-ICE/W Ver 1.32c
----------------------------------------------------------------------------
1. 32 bit .SYM file support
2. 32 bit exports
3. THREAD command
4. ADDR command
5. 32 bit heap support
6. Int 41h DOT commands
7. VERBOSE keyword
8. Listing Dynamic VxDs
9. VxD Exports
10. 32 bit task names
11. WLDR and 32 bit applications
32 bit .SYM file support
------------------------
Support has been added to load 32 bit .SYM files. This feature should
work for both MAPSYM files and MSYM files.
32 bit exports
--------------
Support has been added for 32 bit exported symbols. Use the EXP directive
in WINICE.DAT to load 32 bit export symbols for any 32 bit DLL. The EXP
command lists all exported symbols that WINICE knows about. These
symbols can be used in any WINICE expression and are automatically
displayed when disassembling code.
THREAD command
--------------
The THREAD command has been added to display all threads currently
running. The top line of the display is the current thread. The syntax
is as follows:
THREAD [task-name | TCB]
If the optional task-name is specified, only threads belonging to the
task will be displayed. If the TCB is specified only information about
the one specific thread will be displayed. For each thread the following
information is dislayed:
RING0TCB - This is the address of the ring 0 thread control block.
This is the address that is passed to VxDs for thread
creation and thread termination.
ID - This is the word ID number of the thread.
CONTEXT - This is the context handle for the thread that determines
what address space is used for the thread.
RING3TCB - This is the address of the ring 3 thread control block.
This is the one that would be used by applications.
PROCESS - This is the address of the process block that owns the
thread.
TASKDB - This is the selector of the task database that owns the
thread.
PDB - This the selector of the program database (protected mode
PSP).
SZ - This is the size of the thread either 16 or 32 bit.
OWNER - This is the task name of the owner. For 32 bit tasks,
the module name with the extension stripped off is
displayed.
An asterisk '*' displayed in front of the owner name indicates that the
thread is the current thread for the task.
ADDR command
------------
The ADDR command has been added to both display and switch to specific
address contexts. Each 32 bit task is currently given the address space
from 400000h to 3fffffffh. This is called an address context. The
syntax of the ADDR command is as follows:
ADDR [context-handle | task-name]
If no parameters are specified information will be displayed for each
address context. The top line of the display is the current context.
For each address context, the following information is displayed.
HANDLE - This is the address of the context control block. This
is the handle that would be passed in VxD calls that
require a context handle.
PGTPTR - This is the address of an array of page table addresses.
Each entry in the array represents a 4 meg page table.
When address contexts are switched this array is copied
to the appropriate spot in the page directory.
TABLES - This is the number of entries in the PGTPTR array. Not all
entries contain valid page directory entries. This is
only the number of entries reserved.
MINADDR - This is the minimum virtual address of the address context.
MAXADDR - This is the maximum virtual address of the address context.
OWNER - This is the task name of the first 32 bit task that uses
this address context. All the 16 bit tasks share a
common address context which show up as being owned by
KERNEL.
If a context-handle or task-name are entered, WINICE will switch to that
address context. The proper address context will be restored before
WINICE continues.
32 bit heap support
-------------------
Support has been added in the HEAP command for 32 bit heaps. This
includes both ring3 heaps and ring0 heaps. The syntax for 32 bit heaps
is as follows:
HEAP 32 [task-name | heap-base]
If no parameters are specified, all 32 bit heaps that can be found will
be displayed. The following heaps will be displayed:
Each process's system heap. This is the heap created for each process
by Kernel32 when the process is first created.
Each process's private heap if one exists. This is the heap that
would be returned in the GetProcessHeap command. Nothing will be
shown for 16 bit processes since they use KERNEL32's heap.
The two ring 0 heaps created by VMM.
One ring0 heap for every existing virtual machine.
For each 32 bit heap the following information will be displayed:
The heap base address.
The maximum size that the heap can grow too.
The current committed memory in the heap.
The owner of the heap.
If a task-name is provided, WINICE will display the entire process heap
for that task. The address context will automatically be changed to the
correct one. If a 16 bit task name is given, KERNEL32's heap will be
displayed.
If an actual heap base address is given that entire heap will be
displayed. If the heap is in private address space, you must make sure
you are in the right address context for that heap.
When displaying an individual 32 bit heap the following information is
displayed:
The address of each heap element.
The size in bytes of each element.
The EIP address of the code that allocated the element.
The nearest symbol to the EIP address.
The last two pieces of information are only available in the debug
versions of CHICAGO. For ring3 heaps this means the SDK debug versions,
for ring0 heaps this means the DDK debug version of DOS386.
INT 41h DOT Commands
--------------------
Support has been added for the following int 41h dot commands.
function 70h register 32 bit dot command
72h deregister dot command
73h printf32
75h get registers
76h set registers
77h get character from command line
78h evaluate expression
79h verify memory address
7ah display registers
7bh stack dump
VERBOSE keyword
---------------
When the VERBOSE keyword is placed on a line in the WINICE.DAT file
WINICE will display debugging messages when the following events occur.
16 bit segment loads and segment frees
32 bit segment loads and segment frees
Module deleted
DLL starting
ALL VxD messages
Dynamic VxDs
------------
The VXD command now displays a list of dynamically loaded VxDs.
Everything displayed after the dashed lines is a dynamic VxD.
VxD Exports
-----------
Changed the VCALL and VXD commands to include VXD services for every
CHICAGO VxD contained in the DDK include files.
32 bit task names
-----------------
In the current release of CHICAGO all 32 bit tasks have the same task
name which is 'THREAD32'. Rather than display this, WINICE will use
the name found in the 16 bit module data base for the task. This name
is the FILE.EXT of the module. WINICE strips off the extension before
displaying this. On commands that accept a task name, enter only the
file portion of the name.
WLDR and 32 bit applications
----------------------------
Currently WLDR will not load symbols for a 32 bit application. It can be
used to load them but when it pops up the screen will be filled with
invalid instructions. This is because the code has not actually been
loaded. Single stepping once (F8) will force the code to load.